/*
 * Protocol.java
 *
 * Created on August 21, 2007, 2:20 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.xeerkat.xmpp;

import java.net.URI;
import org.infoset.xml.Name;

/**
 *
 * @author alex
 */
public interface Protocol
{
   
   public final static URI XMPP_CLIENT   = URI.create("jabber:client");
   public final static URI XMPP_SERVER   = URI.create("jabber:server");
   public final static URI XMPP_DIALBACK = URI.create("jabber:server:dialback");
   public final static URI XMPP_ROSTER   = URI.create("jabber:iq:roster");
   public final static URI XMPP_STREAM   = URI.create("http://etherx.jabber.org/streams");
   public final static URI XMPP_BIND     = URI.create("urn:ietf:params:xml:ns:xmpp-bind");
   public final static URI XMPP_SESSION  = URI.create("urn:ietf:params:xml:ns:xmpp-session");
   public final static URI XMPP_STREAMS  = URI.create("urn:ietf:params:xml:ns:xmpp-streams");
   public final static URI XMPP_STANZAS  = URI.create("urn:ietf:params:xml:ns:xmpp-stanzas");
   public final static URI XMPP_TLS      = URI.create("urn:ietf:params:xml:ns:xmpp-tls");
   public final static URI XMPP_SASL     = URI.create("urn:ietf:params:xml:ns:xmpp-sasl");
   public final static URI XMPP_PING     = URI.create("urn:xmpp:ping");
   public final static URI XMPP_DISCO_INFO = URI.create("http://jabber.org/protocol/disco#info");
   public final static URI XMPP_DISCO_ITEMS = URI.create("http://jabber.org/protocol/disco#items");
   public final static URI XMPP_MUC        = URI.create("http://jabber.org/protocol/muc");
   public final static URI XMPP_MUC_USER   = URI.create("http://jabber.org/protocol/muc#user");
   public final static URI XMPP_MUC_OWNER  = URI.create("http://jabber.org/protocol/muc#owner");
   public final static URI XMPP_DATA       = URI.create("jabber:x:data");
   
   public final static Name PRESENCE = Name.create(XMPP_CLIENT,"presence");
   public final static Name MESSAGE = Name.create(XMPP_CLIENT,"message");
   public final static Name IQ = Name.create(XMPP_CLIENT,"iq");
   public final static Name BODY = Name.create(XMPP_CLIENT,"body");
   public final static Name SUBJECT = Name.create(XMPP_CLIENT,"subject");
   public final static Name ERROR = Name.create(XMPP_CLIENT,"error");
   public final static Name THREAD = Name.create(XMPP_CLIENT,"thread");

   
   public final static Name STREAM = Name.create(XMPP_STREAM,"stream");
   public final static Name FEATURES = Name.create(XMPP_STREAM,"features");
   public final static Name STREAM_ERROR = Name.create(XMPP_STREAM,"error");
   
   public final static Name STREAMS_ERROR_TEXT = Name.create(XMPP_STREAMS,"text");
   public final static Name STREAMS_ERROR_HOST_UNKNOWN = Name.create(XMPP_STREAMS,"host-unknown");
   public final static Name STREAMS_ERROR_NOT_AUTHORIZED = Name.create(XMPP_STREAMS,"not-authorized");
   public final static Name STREAMS_ERROR_BAD_FORMAT = Name.create(XMPP_STREAMS,"bad-format");
   public final static Name STREAMS_ERROR_XML_NOT_WELL_FORMED = Name.create(XMPP_STREAMS,"xml-not-well-formed");
   public final static Name STREAMS_ERROR_INTERNAL_SERVER_ERROR = Name.create(XMPP_STREAMS,"internal-server-error");
   
   public final static Name STANZAS_ERROR_TEXT = Name.create(XMPP_STANZAS,"text");
   public final static Name STANZAS_ERROR_BAD_REQUEST = Name.create(XMPP_STANZAS,"bad-request");
   public final static Name STANZAS_ERROR_JID_MALFORMED = Name.create(XMPP_STANZAS,"jid-malformed");
   public final static Name STANZAS_ERROR_INTERNAL_SERVER_ERROR = Name.create(XMPP_STANZAS,"internal-server-error");
   
   
   public final static Name STARTTLS = Name.create(XMPP_TLS,"starttls");
   public final static Name STARTTLS_REQUIRED = Name.create(XMPP_TLS,"required");
   public final static Name STARTTLS_PROCEED = Name.create(XMPP_TLS,"proceed");
   public final static Name STARTTLS_FAILURE = Name.create(XMPP_TLS,"failure");
   
   public final static Name MECHANISMS = Name.create(XMPP_SASL,"mechanisms");
   public final static Name MECHANISM = Name.create(XMPP_SASL,"mechanism");
   public final static Name FAILURE = Name.create(XMPP_SASL,"failure");
   public final static Name SUCCESS = Name.create(XMPP_SASL,"success");
   public final static Name AUTH = Name.create(XMPP_SASL,"auth");
   public final static Name INVALID_MECHANISM = Name.create(XMPP_SASL,"invalid-mechanism");
   public final static Name INCORRECT_ENCODING = Name.create(XMPP_SASL,"incorrect-encoding");
   public final static Name NOT_AUTHORIZED = Name.create(XMPP_SASL,"not-authorized");
   
   public final static Name BIND = Name.create(XMPP_BIND,"bind"); 
   public final static Name RESOURCE = Name.create(XMPP_BIND,"resource"); 
   public final static Name JID = Name.create(XMPP_BIND,"jid"); 
   
   public final static Name SESSION = Name.create(XMPP_SESSION,"session"); 
   
   public final static Name ROSTER_QUERY = Name.create(XMPP_ROSTER,"query");
   public final static Name ROSTER_ITEM = Name.create(XMPP_ROSTER,"item");
   public final static Name ROSTER_GROUP = Name.create(XMPP_ROSTER,"group");

   public final static Name PING = Name.create(XMPP_PING,"ping");

   public final static Name DISCO_INFO_QUERY = Name.create(XMPP_DISCO_INFO,"query");
   public final static Name DISCO_INFO_FEATURE = Name.create(XMPP_DISCO_INFO,"feature");

   public final static Name DISCO_ITEMS_QUERY = Name.create(XMPP_DISCO_ITEMS,"query");

   public final static Name MUC_X = Name.create(XMPP_MUC,"x");
   public final static Name MUC_USER_X = Name.create(XMPP_MUC_USER,"x");
   public final static Name MUC_USER_ITEM = Name.create(XMPP_MUC_USER,"item");
   public final static Name MUC_USER_STATUS = Name.create(XMPP_MUC_USER,"status");

   public final static Name MUC_OWNER_QUERY = Name.create(XMPP_MUC_OWNER,"query");

   public final static Name DATA_X = Name.create(XMPP_DATA,"x");
   public final static Name DATA_FIELD = Name.create(XMPP_DATA,"field");
   public final static Name DATA_OPTION = Name.create(XMPP_DATA,"option");
   public final static Name DATA_VALUE = Name.create(XMPP_DATA,"value");
}
